/** 
 * JPanel Gibt die Daten des Mediums mit der jeweiligen ID zurueck.
 * 
 * 
 * Datei: PanelgibMedium.java          Autor: Simon Schindelmann 
 * Datum: 26.11.11                     Version: 0.1
 * 
 */
package medienverwaltung.simulation;


import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashSet;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import medienverwaltung.Abmessung;
import medienverwaltung.Aufsatz;
import medienverwaltung.Buch;
import medienverwaltung.Datentraeger;
import medienverwaltung.DatumParser;
import medienverwaltung.Ebook;
import medienverwaltung.Hoerbuch;
import medienverwaltung.Medium;
import medienverwaltung.Mediumverwalter;
import medienverwaltung.Zeitschrift;

public class PanelgibMedium extends JPanel
{
  private static final long serialVersionUID = 8066604323752577581L;
  //Speichert die aktuelle Sprache die verwendet wird.
  private Uebersetzung uebersetzung = Uebersetzung.gibSprache ();
  private JPanel panel1, panel2;
  private JLabel mnr;
  private JTextField txt_mnr;
  private JButton gibM;
  private JTextArea text;
  
  
  /**
   * Das Layout wird gesetzt und die Labels, Textfelder und Buttons 
   * werden initialisiert und dem JPanel hinzugefuegt.
   */
  public PanelgibMedium ()
  {
    init ();
    panel1.setLayout (new GridLayout (1, 3));
    panel2.setLayout (new GridLayout (1, 1));
    setLayout (new GridLayout (2, 1));
    add (panel1);
    add (panel2);
    panel1.add (mnr);
    panel1.add (txt_mnr);
    panel1.add (gibM);
    panel2.add (new JScrollPane (text));
  }


  /**
   * Hier werden die Labels, Textfelder, Buttons und ActionListener 
   * initialisiert.
   */
  public void init ()
  {
    mnr = new JLabel ("  "
        + uebersetzung.lokal.gibUebersetzung ("MediumNr") + ": ");
    txt_mnr = new JTextField ();
    gibM = new JButton (uebersetzung.lokal
        .gibUebersetzung ("gib Medium"));
    text = new JTextArea ();
    text.setEditable (false);
    panel1 = new JPanel ();
    panel2 = new JPanel ();

    gibM.addActionListener (new ActionListener ()
    {
      public void actionPerformed (ActionEvent e)
      {

        try
        {
        gibMedium ();
         }
         catch (NullPointerException e1)
         {
           JOptionPane.showMessageDialog (null, "" + uebersetzung.lokal
               .gibUebersetzung ("Dieses Medium existiert nicht"), null,
               JOptionPane.WARNING_MESSAGE);
         }
         catch (IllegalArgumentException e2)
         {
           JOptionPane.showMessageDialog (null, "" + uebersetzung.lokal
               .gibUebersetzung ("Ungueltige Zahl"), null, JOptionPane
               .WARNING_MESSAGE);
         }
      }
    });
  }


  /**
   * Holt das Medium mit der entsprechenden Nummer und guckt ob es sich
   * um ein Buch, Zeitschrift, Aufsatz, Ebook, Datentraeger oder
   * Hoerbuch handelt und ruft dann die entsprechende Methode auf.
   */
  public void gibMedium ()
  {
    if (txt_mnr.getText ().isEmpty () == true)
    {
      txt_mnr.setText ("  " + uebersetzung.lokal
	  .gibUebersetzung ("Fehler Feld MediumNr ist leer"));
    }
    else
    {
      Mediumverwalter mk = new Mediumverwalter ();
      Medium m = mk.gibMedium (DatumParser.stringZuInteger (txt_mnr
          .getText ()));

      if (m.gibInitial ().equals ("BU"))
      {
        buch (m);
      }

      if (m.gibInitial ().equals ("ME"))
      {
        text.setText ("ME");
      }

      if (m.gibInitial ().equals ("AS"))
      {
        aufsatz (m);
      }

      if (m.gibInitial ().equals ("ZS"))
      {
        zeitschrift (m);
      }

      if (m.gibInitial ().equals ("EB"))
      {
        ebook (m);
      }
      
      if (m.gibInitial ().equals ("DT"))
      {
        datentraeger (m);
      }
      
      if (m.gibInitial ().equals ("HB"))
      {
        hoerbuch (m);
      }
    }
  }


  /**
   * Holt sich alle Daten des Objektes, speichert sie in Strings und
   * gibt sie aus.
   * @param mu Das Medium Buch wird uebergeben.
   */
  public void buch (Medium mu)
  {
    Buch m;
    String mId, ausgabe, fachgebiet, thema, sachgebiet, titel, 
    	umfang, initial, datum, ab1, ab2, ab3, verlag, notizen, 
    	stichworte, beteiligte, autoren, isbn, praesenz, serie;
    HashSet<String> stich;
    Abmessung abmessung;

    m = (Buch) mu;
    mId = "" + m.gibMediumId ();
    
    ausgabe = "";
    if (m.gibAusgabe () != null)
    {
      ausgabe = m.gibAusgabe ();
    }
    
    fachgebiet = "";
    if (m.gibFachgebiet () != null)
    {
      fachgebiet = m.gibFachgebiet ();
    }
    
    thema = "";
    if (m.gibThema () != null)
    {
      thema = m.gibThema ();
    }
    
    sachgebiet = "";
    if (m.gibSachgebiet () != null)
    {
      sachgebiet = m.gibSachgebiet ();
    }
 
    titel = m.gibTitel ();
    umfang = "";
    
    if (m.gibUmfang () != null)
    {
      umfang = m.gibUmfang ();
    }
    
    initial = m.gibInitial ();
    datum = m.gibErscheinungsdatumString ();
    abmessung = m.gibAbmessung ();
    ab1 = "" + abmessung.gibBreite () + " ";
    ab2 = "" + abmessung.gibHoehe () + " ";
    ab3 = "" + abmessung.gibLaenge () + " ";
    
    verlag = "";
    if (m.gibVerlag () != null)
    {
      verlag = m.gibVerlag ().gibName ();
    }
    
    notizen = "";
    if (m.gibNotiz () != null)
    {
      notizen = "" + m.gibNotiz ().gibInhalt ();
    }
 
    stichworte = "";
    stich = m.gibStichworte ();
    for (String x : stich)
    {
      stichworte = stichworte + x + ", ";
    }
    
    beteiligte = m.gibBeteiligteString ();
    autoren = m.gibAutorenListeString ();
    isbn = "" + m.gibISBN ().gibISBN13 ();
    praesenz = "" + m.istPraesenzexemplar ();
    
    serie = "";
    if (m.gibSerie () != null)
    {
      serie = m.gibSerie ();
    }

    text.setText ("  "
        + uebersetzung.lokal.gibUebersetzung ("MediumNr") + ": " + mId
        + "\n" + "  " 
        + uebersetzung.lokal.gibUebersetzung ("Initial") + ": "
        + initial + "\n" 
        + "  " + uebersetzung.lokal.gibUebersetzung ("Titel1")
        + ": " + titel + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Datum") + ": " + datum
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Abmessung") + ": " + ab1
        + ab2 + ab3 + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Ausgabe") + ": "
        + ausgabe + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Fachgebiet") + ": "
        + fachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Thema") + ": " + thema
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Sachgebiet") + ": "
        + sachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Umfang") + ": " + umfang
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Verlag1")
        + ": " + verlag + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Notizen") + ":\n "
        + notizen + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Stichworte") + ": "
        + stichworte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Beteiligte Personen")
        + ": " + beteiligte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Autoren") + ": "
        + autoren + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("ISBN") + ": " + isbn
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Praesenzexemplar")
        + ": " + praesenz + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Serie") + ": " + serie
        + "\n");
  }


  /**
   * Holt sich alle Daten des Objektes, speichert sie in Strings und
   * gibt sie aus.
   * @param Medium mu das Medium Ebook wird uebergeben.
   */
  public void ebook (Medium mu)
  {
    Ebook m;
    String mId, ausgabe, fachgebiet, thema, sachgebiet, titel, umfang, 
    	initial, datum, ab1, ab2, ab3, verlag, notizen, stichworte, 
    	beteiligte, autoren, isbn, serie, datengroesse;
    Abmessung abmessung;
    HashSet<String> stich;

    m = (Ebook) mu;
    mId = "" + m.gibMediumId ();
    
    ausgabe = "";
    if (m.gibAusgabe () != null)
    {
      ausgabe = m.gibAusgabe ();
    }
    
    fachgebiet = "";
    if (m.gibFachgebiet () != null)
    {
      fachgebiet = m.gibFachgebiet ();
    }
    
    thema = "";
    if (m.gibThema () != null)
    {
      thema = m.gibThema ();
    }
    
    sachgebiet = "";
    if (m.gibSachgebiet () != null)
    {
      sachgebiet = m.gibSachgebiet ();
    }
 
    titel = m.gibTitel ();
    
    umfang = "";
    if (m.gibUmfang () != null)
    {
      umfang = m.gibUmfang ();
    }
    
    initial = m.gibInitial ();
    datum = m.gibErscheinungsdatumString ();
    abmessung = m.gibAbmessung ();
    ab1 = "" + abmessung.gibBreite () + " ";
    ab2 = "" + abmessung.gibHoehe () + " ";
    ab3 = "" + abmessung.gibLaenge () + " ";
    
    verlag = "";
    if (m.gibVerlag () != null)
    {
      verlag = m.gibVerlag ().gibName ();
    }
    
    notizen = "";
    if (m.gibNotiz () != null)
    {
      notizen = "" + m.gibNotiz ().gibInhalt ();
    }
    
    stichworte = "";
    stich = m.gibStichworte ();
    for (String x : stich)
    {
      stichworte = stichworte + x + ", ";
    }
    
    beteiligte = m.gibBeteiligteString ();
    autoren = m.gibAutorenListeString ();
    isbn = "" + m.gibISBN ().gibISBN13 ();
    datengroesse = "" + m.gibDateigroesse ();
    
    serie = "";
    if (m.gibSerie () != null)
    {
      serie = m.gibSerie ();
    }
   
    text.setText ("  "
        + uebersetzung.lokal.gibUebersetzung ("MediumNr") + ": " + mId
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Initial")
        + ": " + initial + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Titel1") + ": " + titel
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Datum")
        + ": " + datum + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Abmessung") + ": " + ab1
        + ab2 + ab3 + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Ausgabe") + ": "
        + ausgabe + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Fachgebiet") + ": "
        + fachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Thema") + ": " + thema
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Sachgebiet") + ": "
        + sachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Umfang") + ": " + umfang
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Verlag1")
        + ": " + verlag + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Notizen") + ":\n "
        + notizen + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Stichworte") + ": "
        + stichworte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Beteiligte Personen")
        + ": " + beteiligte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Autoren") + ": "
        + autoren + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("ISBN") + ": " + isbn
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Datengroesse") + ": "
        + datengroesse + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Serie") + ": " + serie
        + "\n");
  }


  /**
   * Holt sich alle Daten des Objektes, speichert sie in Strings und
   * gibt sie aus.
   * @param Medium mu das Medium Aufsatz wird uebergeben.
   */
  public void aufsatz (Medium mu)
  {
    Aufsatz m;
    String mId, ausgabe, fachgebiet, thema, sachgebiet, titel, umfang, 
    	initial, datum, ab1, ab2, ab3, verlag, notizen, stichworte, 
    	autor, enthalten;
    Abmessung abmessung;
    HashSet<String> stich;

    m = (Aufsatz) mu;
    mId = "" + m.gibMediumId ();
    
    ausgabe = "";
    if (m.gibAusgabe () != null)
    {
      ausgabe = m.gibAusgabe ();
    }
    
    fachgebiet = "";
    if (m.gibFachgebiet () != null)
    {
      fachgebiet = m.gibFachgebiet ();
    }
    
    thema = "";
    if (m.gibThema () != null)
    {
      thema = m.gibThema ();
    }
    
    sachgebiet = "";
    if (m.gibSachgebiet () != null)
    {
      sachgebiet = m.gibSachgebiet ();
    }
 
    titel = m.gibTitel ();
    
    umfang = "";
    if (m.gibUmfang () != null)
    {
      umfang = m.gibUmfang ();
    }
    
    initial = m.gibInitial ();
    datum = m.gibErscheinungsdatumString ();
    abmessung = m.gibAbmessung ();
    ab1 = "" + abmessung.gibBreite () + " ";
    ab2 = "" + abmessung.gibHoehe () + " ";
    ab3 = "" + abmessung.gibLaenge () + " ";
    
    verlag = "";
    if (m.gibVerlag () != null)
    {
      verlag = m.gibVerlag ().gibName ();
    }
    
    notizen = "";
    if (m.gibNotiz () != null)
    {
      notizen = "" + m.gibNotiz ().gibInhalt ();
    }
    
    stichworte = "";
    stich = m.gibStichworte ();
    for (String x : stich)
    {
      stichworte = stichworte + x + ", ";
    }
    
    autor = "";
    if (m.gibAutor () != null)
    {
      autor = "" + m.gibAutor ().gibVornamen () + " "
          + m.gibAutor ().gibNachname ();
    }
    
    enthalten = "";
    if (m.gibEnhaltenIn () != null)
    {
      enthalten = m.gibEnhaltenIn ();
    }

    text.setText ("  "
        + uebersetzung.lokal.gibUebersetzung ("MediumNr") + ": " + mId
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Initial")
        + ": " + initial + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Titel1") + ": " + titel
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Datum")
        + ": " + datum + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Abmessung") + ": " + ab1
        + ab2 + ab3 + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Ausgabe") + ": "
        + ausgabe + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Fachgebiet") + ": "
        + fachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Thema") + ": " + thema
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Sachgebiet") + ": "
        + sachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Umfang") + ": " + umfang
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Verlag1")
        + ": " + verlag + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Notizen") + ":\n "
        + notizen + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Stichworte") + ": "
        + stichworte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Autor1") + ": " + autor
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Enthalten In") + ": "
        + enthalten + "\n");

  }


  /**
   * Holt sich alle Daten des Objektes, speichert sie in Strings und
   * gibt sie aus.
   * @param Medium mu das Medium Zeitschrift wird uebergeben.
   */
  public void zeitschrift (Medium mu)
  {
    Zeitschrift m;
    String mId, ausgabe, fachgebiet, thema, sachgebiet, titel, umfang, 
    	initial, datum, ab1, ab2, ab3, verlag, notizen, stichworte, 
    	beteiligte, issn;
    HashSet<String> stich;
    Abmessung abmessung;

    m = (Zeitschrift) mu;
    mId = "" + m.gibMediumId ();
    ausgabe = "";
    
    if (m.gibAusgabe () != null)
    {
      ausgabe = m.gibAusgabe ();
    }
    
    fachgebiet = "";
    if (m.gibFachgebiet () != null)
    {
      fachgebiet = m.gibFachgebiet ();
    }
    
    thema = "";
    if (m.gibThema () != null)
    {
      thema = m.gibThema ();
    }
    
    sachgebiet = "";
    if (m.gibSachgebiet () != null)
    {
      sachgebiet = m.gibSachgebiet ();
    }
 
    titel = m.gibTitel ();
    
    umfang = "";
    if (m.gibUmfang () != null)
    {
      umfang = m.gibUmfang ();
    }
    
    initial = m.gibInitial ();
    datum = m.gibErscheinungsdatumString ();
    abmessung = m.gibAbmessung ();
    ab1 = "" + abmessung.gibBreite () + " ";
    ab2 = "" + abmessung.gibHoehe () + " ";
    ab3 = "" + abmessung.gibLaenge () + " ";
    
    verlag = "";
    if (m.gibVerlag () != null)
    {
      verlag = m.gibVerlag ().gibName ();
    }
    
    notizen = "";
    if (m.gibNotiz () != null)
    {
      notizen = "" + m.gibNotiz ().gibInhalt ();
    }
    
    stichworte = "";
    stich = m.gibStichworte ();
    for (String x : stich)
    {
      stichworte = stichworte + " " + x;
    }
    
    beteiligte = m.gibBeteiligteString ();
    issn = "" + m.gibISSN ();

    text.setText ("  "
        + uebersetzung.lokal.gibUebersetzung ("MediumNr") + ": " + mId
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Initial")
        + ": " + initial + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Titel1") + ": " + titel
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Datum")
        + ": " + datum + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Abmessung") + ": " + ab1
        + ab2 + ab3 + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Ausgabe") + ": "
        + ausgabe + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Fachgebiet") + ": "
        + fachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Thema") + ": " + thema
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Sachgebiet") + ": "
        + sachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Umfang") + ": " + umfang
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Verlag1")
        + ": " + verlag + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Notizen") + ":\n "
        + notizen + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Stichworte") + ": "
        + stichworte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Beteiligte Personen")
        + ": " + beteiligte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("ISSN") + ": " + issn
        + "\n");
  }


  /**
   * Holt sich alle Daten des Objektes, speichert sie in Strings und
   * gibt sie aus.
   * @param Medium mu das Medium Datentraeger wird uebergeben.
   */
  public void datentraeger (Medium mu)
  {
    Datentraeger m;
    String mId, ausgabe, fachgebiet, thema, sachgebiet, titel, umfang, 
    	initial, datum, ab1, ab2, ab3, notizen, stichworte, beteiligte, 
    	serie, version, speicherplatz, spielzeit, teil, typ;
    Abmessung abmessung;
    HashSet<String> stich;

    m = (Datentraeger) mu;
    mId = "" + m.gibMediumId ();
    
    ausgabe = "";
    if (m.gibAusgabe () != null)
    {
      ausgabe = m.gibAusgabe ();
    }
    
    fachgebiet = "";
    if (m.gibFachgebiet () != null)
    {
      fachgebiet = m.gibFachgebiet ();
    }
    
    thema = "";
    if (m.gibThema () != null)
    {
      thema = m.gibThema ();
    }
    
    sachgebiet = "";
    if (m.gibSachgebiet () != null)
    {
      sachgebiet = m.gibSachgebiet ();
    }
 
    titel = m.gibTitel ();
    
    umfang = "";
    if (m.gibUmfang () != null)
    {
      umfang = m.gibUmfang ();
    }
    
    initial = m.gibInitial ();
    datum = m.gibErscheinungsdatumString ();
    abmessung = m.gibAbmessung ();
    ab1 = "" + abmessung.gibBreite () + " ";
    ab2 = "" + abmessung.gibHoehe () + " ";
    ab3 = "" + abmessung.gibLaenge () + " ";

    notizen = "";
    if (m.gibNotiz () != null)
    {
      notizen = "" + m.gibNotiz ().gibInhalt ();
    }
    
    stichworte = "";
    stich = m.gibStichworte ();
    for (String x : stich)
    {
      stichworte = stichworte + x + ", ";
    }
    
    beteiligte = m.gibBeteiligteString ();
    
    serie = "";
    if (m.gibSerie () != null)
    {
      serie = m.gibSerie ();
    }
    
    version = "";
    if (m.gibVersion () != null)
    {
      version = m.gibVersion ();
    }
    
    speicherplatz = "" + m.gibSpeicherplatz ();
    spielzeit = "" + m.gibSpielzeit ();
    
    teil = "";
    if (m.gibTeil () != null)
    {
      teil = m.gibTeil ();
    }
    
    typ = "" + m.gibDatentraegertyp ();

    text.setText ("  "
        + uebersetzung.lokal.gibUebersetzung ("MediumNr") + ": " + mId
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Initial")
        + ": " + initial + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Titel1") + ": " + titel
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Datum")
        + ": " + datum + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Abmessung") + ": " + ab1
        + ab2 + ab3 + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Ausgabe") + ": "
        + ausgabe + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Fachgebiet") + ": "
        + fachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Thema") + ": " + thema
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Sachgebiet") + ": "
        + sachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Umfang") + ": " + umfang
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Verlag1")
        + ": " + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Notizen") + ":\n "
        + notizen + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Stichworte") + ": "
        + stichworte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Beteiligte Personen")
        + ": " + beteiligte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Serie") + ": " + serie
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Version")
        + ": " + version + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Teil") + ": " + teil
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Speicherplatz") + ": "
        + speicherplatz + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Spielzeit") + ": "
        + spielzeit + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Datentyp") + ": " + typ
        + "\n");
  }


  /**
   * Holt sich alle Daten des Objektes, speichert sie in Strings und
   * gibt sie aus.
   * @param Medium mu das Medium Hoerbuchwird uebergeben.
   */
  public void hoerbuch (Medium mu)
  {
    Hoerbuch m;
    String mId, ausgabe, fachgebiet, thema, sachgebiet, titel, umfang, 
    	initial, datum, ab1, ab2, ab3, notizen, stichworte, beteiligte, 
    	serie, version, speicherplatz, spielzeit, teil, typ, isbn, 
    	autoren, sprecher, verlag;
    Abmessung abmessung;
    HashSet<String> stich;

    m = (Hoerbuch) mu;
    mId = "" + m.gibMediumId ();
    
    ausgabe = "";
    if (m.gibAusgabe () != null)
    {
      ausgabe = m.gibAusgabe ();
    }
    
    fachgebiet = "";
    if (m.gibFachgebiet () != null)
    {
      fachgebiet = m.gibFachgebiet ();
    }
    
    thema = "";
    if (m.gibThema () != null)
    {
      thema = m.gibThema ();
    }
    
    sachgebiet = "";
    if (m.gibSachgebiet () != null)
    {
      sachgebiet = m.gibSachgebiet ();
    }
 
    titel = m.gibTitel ();
    
    umfang = "";
    if (m.gibUmfang () != null)
    {
      umfang = m.gibUmfang ();
    }
    
    initial = m.gibInitial ();
    datum = m.gibErscheinungsdatumString ();
    abmessung = m.gibAbmessung ();
    ab1 = "" + abmessung.gibBreite () + " ";
    ab2 = "" + abmessung.gibHoehe () + " ";
    ab3 = "" + abmessung.gibLaenge () + " ";
    
    verlag = "";
    if (m.gibVerlag () != null)
    {
      verlag = m.gibVerlag ().gibName ();
    }
    
    notizen = "";
    if (m.gibNotiz () != null)
    {
      notizen = "" + m.gibNotiz ().gibInhalt ();
    }
    
    stichworte = "";
    stich = m.gibStichworte ();
    for (String x : stich)
    {
      stichworte = stichworte + x + " ";
    }
    
    beteiligte = m.gibBeteiligteString ();
    
    serie = "";
    if (m.gibSerie () != null)
    {
      serie = m.gibSerie ();
    }
    
    version = "";
    if (m.gibVersion () != null)
    {
      version = m.gibVersion ();
    }
    
    speicherplatz = "" + m.gibSpeicherplatz ();
    spielzeit = "" + m.gibSpielzeit ();
    
    teil = "";
    if (m.gibTeil () != null)
    {
      teil = m.gibTeil ();
    }
    
    typ = "" + m.gibDatentraegertyp ();
    isbn = "" + m.gibIsbn13 ().gibISBN13 ();
    autoren = m.gibAutorenListeString ();
    sprecher = m.gibSprecherListeString ();

    text.setText ("  "
        + uebersetzung.lokal.gibUebersetzung ("MediumNr") + ": " + mId
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Initial")
        + ": " + initial + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Titel1") + ": " + titel
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Datum")
        + ": " + datum + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Abmessung") + ": " + ab1
        + ab2 + ab3 + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Ausgabe") + ": "
        + ausgabe + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Fachgebiet") + ": "
        + fachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Thema") + ": " + thema
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Sachgebiet") + ": "
        + sachgebiet + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Umfang") + ": " + umfang
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Verlag1")
        + ": " + verlag + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Notizen") + ":\n "
        + notizen + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Stichworte") + ": "
        + stichworte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Beteiligte Personen")
        + ": " + beteiligte + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Serie") + ": " + serie
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Version")
        + ": " + version + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Teil") + ": " + teil
        + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Speicherplatz") + ": "
        + speicherplatz + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Spielzeit") + ": "
        + spielzeit + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Datentyp") + ": " + typ
        + "\n" + "  " + uebersetzung.lokal.gibUebersetzung ("Autoren")
        + ": " + autoren + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("Sprecher") + ": "
        + sprecher + "\n" + "  "
        + uebersetzung.lokal.gibUebersetzung ("ISBN") + ": " + isbn
        + "\n");
  }
}